home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
hp48_2
/
yat_dm
< prev
next >
Wrap
Internet Message Format
|
1995-03-31
|
16KB
From: Detlef Mueller <detlef@mwhh.hanse.de>
Subject: v03i023: yat_dm - Yet Another Tetris version 1.4, Part01/01
Newsgroups: comp.sources.hp48
Followup-To: comp.sys.hp48
Approved: spell@seq.uncwil.edu
Checksum: 3178329258 (verify with brik -cv)
Submitted-by: Detlef Mueller <detlef@mwhh.hanse.de>
Posting-number: Volume 3, Issue 23
Archive-name: yat_dm/part01
BEGIN_DOC tetris.doc
Hi everybody.
Here's an update of TETRIS to version 1.4 (last one I hope :*)
Features:
- Initial/pause screen
- hight speed
- stone preview (suppressable)
- increasing levels (manual incrementation possible)
- increasing speed
- original score algorithm/sound
- quick down/left/right/exit
- sound toggle
Changes vs. version 1.3 :
- 'forget to clear first row on fullline remove, fixed
- add +/- ket to toggle sound
- bytes/chksum: 2891/#7536
Installation:
To install the game, a) download the ASC version, execute ASC\->, b)
download the uudecoded version and recall it into the stack.
Enter the port number (0,1,2) where you want to store it and press
STO. Switch the HP48 off, then on again. TETRIS will now be installed
as a library named TETRIS (id no. 769, who wants to play with the
CASINO48 card ? :-)
Deinstallation:
To get rid of the game execute the following commands (if TETRIS
is stored in port 1 or 2, make sure the port is set to R/W):
HOME @ switch to the home directory
769 DETACH @ release library
:&:769 PURGE @ search and purge it
Run/keys:
To play it, enter the LIBRARY TETRIS menu and press the softkey
named TETRIS or just type TETRIS[ENTER] at the command line.
The game starts immediately, coming up with the following screen:
+-------------------------------------------+
|SCORE | ## | TETRIS |
| 0 | ## | |
|LEVEL | | ****** |
| 0 | | * * |
|LINES | | ****** |
| 0 ## | | |
| ## | | |
||PAUSE|| PVT ||_____________||+LEVL|| QUIT||
+-------------------------------------------+
Symbol Means
****** is a little help screen for the motion control keys.
* * Here they are:
****** - Left arrow : Move stone one step left
- Right arrow : Move stone one step right
- Up arrow : Rotate stone
- Down arrow : Drop stone
- VAR key : 'Quick' move stone left
- NXT key : 'Quick' move stone rigth
|xxxxx| are softkey menu labels :
- |PAUSE| : Stop TETRIS until a key is pressed
- | PVT | : Toggle stone preview on/off
- |+LEVL| : Increment level
- | QUIT| : Force 'GAME OVER'
## is a stone.
##
The +/- key toggles the sound on/off.
The ON key can be used to leave TETRIS immediately (boss key :-)
Algorithms:
Score:
Every dropped stone increments the score value in the following
manner (C syntax):
score += lev * (pv ? 2 : 3) + 5 + DY - ft ;
lev - actual level value
pv - preview on/off flag
DY - height of the TETRIS game area (I left this to 23, normally
15 is the correct value)
ft - falltime of the stone (max. 15)
Level:
The level is incremented in the following manner (C syntax):
if ( fullines % 5 > level )
++level ;
In the original TETRIS version the level value is incremented every
ten full lines. Because of the limited height of the HP48 version,
I set this value to five.
Speed:
At level 0, the time until a stone reaches the bottom line is about
10 seconds. When the level is incremented, this time is decremented
by a value, so that a stone needs only 1 second at level 10 to fall
down. The highest speed is reached at level 11 (very difficult
to play .. :)
Sound generation:
Sound is generated at the following points:
- a full line is removed
- newscore % 1000 > oldscore % 1000 (C syntax again)
- game over
I got this formulas and the sounds from the MesS-DOS TETRIS v1.0.
Hints:
To get more points:
While the 1st stone falls:
- suppress stone preview (press PVT once)
- use +LEVL (I start at level 7)
Drop a stone as soon as possible.
Things to notice:
- If you get a 'TETRIS Failed' from the game, please mail me
a description of the circumstances and the contents of the stack.
TERIS traps any error, prints an error message and DOESN'T clean
up the stack. Use the interactive stack to view the stack, then
execute CLEAR !
- TETRIS doesn't destroy your PICT.
- I will maintain this program, so feel free to mail me ideas for
improvement or notes of appreciation ;-) .
Credits:
1) Lennart Boerjeson - TETRIS posted in Aug 90
2) Raymond Hellstern - beta tester
3) Yvonne - alpha tester
4) W. C. Wickes - \->ASC
5) Chris Spell - inserted the UUENCODE form of TETRIS (thanks :-)
6) HP Corvallis - RPL tools/HP48
Happy playing,
Detlef.
P.S. I don't take the blame for worn calculator keys :-).
Any questions ? Feel free to mail me ...
END_DOC
BEGIN_ASC tetris.asc
%%HP: ;
"04B201961011455445259435A313E243C29A44D4729313111030951000000BF5
1050000D9D201192010300F6C12B21308103000D9D20E1A8113593CA031FC2E4
E5E40D9D2029E2010310029E2010320029E20103300B21308BE40D9D20743E4C
A0316EC4078D40C2A20F100045544525943502641696C65646B5421B6421C209
3B2130743E4CA031B2130D9D209034690346FEF302CFA2743A2CB9A211CE2908
2629E20103F0032230C9B269805033920999000000000091029E20103E0088B2
679E6003D4376040073E54E470D9140970362BB46119204500097036C1216E52
162C230C12162C23071B0571B0571B0511920E6000A8B46C2A20D00001555944
5823A31192085000A8B46C2A20F0000B2C45465C4823A3BC040A8B46C2A20B00
00056545823A3FEF30A8B46C2A20F00000514553554823A33004075140C2A20F
0000C494E4543508F1130040DA040C2A20F0000C4546554C408F113004088130
C2A20F00003534F4255408F1111920B500030040E1B20FE1000300062000FFFF
FFFFF35240408092FFFFFFFFF30000000000F7FBFBF4E1801048051280104805
10801048051080F148F4E180104824028010484402801048841280F34805E100
00000000FFFFFFFFF35240408092FFFFFFFFF300000000000002E10000000612
0000000E040000000E140000000E34000000000000008CFFFFF720C404040460
E4A44494E0F5A4E4B4F1E4A4F5F4E0C44CF7D460844404942004040404000CFF
FFF700048404240004C404640004ECF7E40004F4F5E50004E4E4E40004C44464
0004840424000CFFFFF7000000000000000040000000004000000008F3000000
00F100000000E000000000400000F30403C3700B821433703914049B462C2300
DB4680B05940403F040D9140D00403C370FEF3029E2010360043370300405573
5D00405273529E20103D00B2130D9D202A17083416C5416566169FF305761629
E20103F002CFA2743A2CB9A211CE29082652616C9B269805051616D004087735
CB916D9D201192060C00FEF306B316E8F60834163223011920F99F06B316E8F6
085230B2130FEF30586169FF3055735B7040CA1307E316E8F6098E36D9D20119
20F99F06B316E8F602A1709FF3087735A2170D9D20D00403C37029E20103A004
3370CB416FED305861626224CB916D9D203004052735B2130B21303004087735
A2170D9D20FEF306B316E8F6023E46CBD30CA1307E316E8F6069816D9D201192
0F99F06B316E8F60B213023E460ED3011920F99F06B316E8F609FF3087735CB9
16D9D209FF30557357BF60B213085230FEF30B213066226300408773557B308C
170B2130D9D203004052735B21307CC30300408773564B308DA164423029E201
0370030040877358C170B2130D9D2026224A2170D9D2021B469E040E1B205500
070000820000000000000C94470757324D6105515AD557055732554105215C55
470727500000000000B821119208151059616170403C370B2040CC4168813011
920091000ED305961643370170403C3702B1414337017D0056F1485230B21307
94708605017D003004055735D004055735B2130D9D203F040C64169082653616
29E20103600E0416339208990000000001710189A23392069900000000000105
F6A200616B2130D9D208813023E467FE30B9F06F6E30F6E305362121B46FEF30
11920450008DF06F29115362121B4671040976115362121B46FEF30119204500
071040E9836C84169082655616D91402C23029E20103600120407FE30B9F06C6
41638D30CB91629E20103400580401192009100FD04011920C21002B1412B141
B2130D9D204E76100D11300405923053621CAF0697611B2130D9D20C74168813
0C6416D0040877358DA1630040D00402CE30DF040CBD30CB4160ED305D726546
16940402C23029E20103600119208E3007FE30B4826119208E3007FE30B9F06E
4D30CB916D9D205304011920CB200F3040119204F1002B1412B141B213011920
B0E002A170E4A20410000001002003004002C230CA1307E316E8F60CAF06A852
67E316E8F60CBD3071040D2C2629E20103500D9D2023E460ED30B21301192000
200CD6368C1704423017D0024F50B213047A20D5040F80403A04035040760409
90409FF303004012040B20403F040B213047A2029E20103B00D9D20FEF306B31
6E8F6011920FFFFF29E20103C004423011920F99F06B316E8F60B2130D9D20FE
F306B316E8F609FF3029E20103C004423011920F99F06B316E8F60B2130D9D20
FEF306B316E8F602A17011920FFFFF29E20103C008C17011920F99F06B316E8F
60B2130D9D20FEF306B316E8F602A1709FF3029E20103C008C17011920F99F06
B316E8F60B2130D9D209FF3052735B213029E20103D00D9D20D0040881308773
539916D9D2055735834161192060C00FEF306B316E8F6085230B213052735834
161192060C0011920F99F06B316E8F6085230B213029E20103400D9D20300405
2735B2130D9D20A8B4688130487358DA161673513735B2130B2130D9D20E0416
9C7A141740CB916D9D2044EF329E2010390029E201038005923079E6091D3062
4466B650CB916E8F60B2130B2130D9D20FEF306B316E8F6029E20103F00C9416
C9B26CA416E0E3084E36D9D204423013236B21308813059616C9B2632230CA13
07E316E8F6098E36D9D2012F06CC41657616B2130B9F0611920F99F06B316E8F
60B2130D9D208813059616CBD30CA1307E316E8F60698160CA30CC4160ED3018
A30B2130D9D2021B46FEF30CA13053621CAF0611920450002BB46F2911CAF06C
A13053621CAF0611920450002BB46E9836C1B467B040E1B20591007200052000
080051000008005100000E30510000080051010008984201000C8842C70008EB
420100088CF70300049505810004D40501000A84C701000AA405820009C50782
0084E585450082B205450089A205290084B68252100FAA83941009AAC6391009
AA45521009AAAAEF0001F76D28000114AA28000F14C7EF00011444101001F74C
FF300908CF0020880828002084001010208FFFFFFF30C429429460A4294294A0
FFFFFFFFF110001100011008020001100802000110080200011008020001FFFF
FFFFF12BB46D0040E1B201300011000700008080E38081C0804122141422C141
4141C10B8210B82156F1485230592300B82124F50B213047A20D9D2075660CCD
20A010013610ADD10B147134109164AF0142100E7174143145132164AF215E11
64818FA580D01561AFAAF1D122A95118C9D5F522A8520A81819F122A82C1201B
B5507146818F29818F29C9136AF2156090A90B456E002F308200E49BF4BF4BF4
AF68AE09AF0AF2AC48108087340E68084396840E611113216414411BDD11A136
20142164808CB2130CCD206B000AF08F146608FB97601018F146601001431321
69AF215EBAFAAF122A95118C9AF5BF522A8520A8181D22A82C1201BB55071468
18F29818F29C9134119BF2BF2241542BF616F16F1610D880BEBF4BF4BF4AF68A
EB8208F34150B213047A2047A20E4A2011000301100300200E4A201100010220
2201200E4A2011000101301201100E4A2011000102200100101B213047A20E4A
2011000101300200100E4A2011000202100200201E4A2011000101301201300E
4A2011000202102101100B213047A20E4A2011000201100300200E4A20110002
02101200201E4A2011000101301200201E4A2011000202301201200B213047A2
0E4A2011000101300201200E4A2011000302201301200B213047A20E4A201100
0301100201200E4A2011000102201101200B213047A20E4A2011000000300100
200E4A2011000103102101100B213047A20E4A2011000201101100200B2130B2
130E4A20070000000000000000000000000000C3000000000000000000000000
00000000000000000000000000000610006045544525943500011000E4A20550
0052AEFECAEFF0FEF881FF192FF3F2FF5E3FFD04FF775FF3B5FF2C7FF328FF9C
8FF509FF66BFF44DFFF76F6357"
END_ASC
BYTES: #7536h 2901.5
BEGIN_UU tetris.uue
begin 644 tetris
M2%!(4#0X+45`*Q!I`1%4151225,Z,2XT+*E$32<Y,1$!`UD!``"P7P$%`-#9A
M`A$I$#``;QRR$@,8,`#0V0(>BA%3.:PP\2Q.7D[0V0*2+A`P`2#I`@$C`)(N0
M$#`#L!(#N$[0V0)'X\0*$^9,<-@$+"KP`0!4151225,@1F%I;&5D6R2Q1A(LP
MD+,2`T?CQ`H3*S'0V0()0Y8P9.\_(/PJ1Z/"FRH1[)*`8I(N$#`/,"(#G"N6,
M"`4S*9"9```````9(.D"`>,`B"MVZ08P37,&!'#C14X'G4&0!V.R2Q:1`E0`8
MD`=C'!+F)6'",L`A8<(R<+%0%PMUL5`1*>`&`(I+QJ("#0`0595$A3(Z$2F`<
M!0"*2\:B`@\`L,)49,6$,CK+0*"X9"PJL```4%94**/S_@.*2\:B`@\``!544
M-56$,CH#0'`5!"PJ\```3$E.15.`'S$`!*U`P*("#P#`5&15Q`3X$0-`@!@#S
M+"KP``!30T]218`?$9$"6P`P``0>*_`>`#``8`(`_____S\E!`0(*?____\_P
M``````!_O[]/'@@!A%`A"`&$4`$(`810`0@?A$\>"`&$0B`(`81$(`@!A$@AZ
M"#^$4!X``````/____\_)00$""G_____/P```````"`>````8"$```#@0```=
M`.!!````X$,`````````R/__?P),0$!`!DY*1$D.7TI.2Q].2E]/#DS$?TT&]
M2$1`20)`0$!``,#__W\`0$A`0@!`3$!&`$#.?TX`0$]?7@!`3DY.`$!,1$8`O
M0$A`0@#`__]_```````````$``````0```"`/P`````?``````X`````!```/
M/T`P/`>P*$$S!Y-!0+EDPC(`O60("Y4$!/-`T!D$#4`P/`?O/R#I`@%C`#1SF
M,``$53?5``0E-R7I`@'3`"LQT-D"HG&`0V%<%%9F8?D_4&=ADBX0,`\@_"I'^
MH\*;*A'LDH!B)1;&N6*)4%!A80U`@'=3O!G6V0(1*6#``.\_8#MACF^`0V$CL
M,A"1`I_Y8#MACF^`)0,K,?#^`X46EO\#53>U!P2L,7`^88YOD.ACG2T0D0*?U
M^6`[88YO(!H'^3^`=U,J<=#9`@U`,#P'DBX0,`I`,P>\%/;>`X46)B9"O!G6A
MV0(#0%!R4RLQL!(#`T"`=U,J<=#9`N\_8#MACF\@XV2\/<`:`^<3YO@&EAC6Y
MV0(1*?"9#[83YO@&*S$@XV3@/1"1`I_Y8#MACF^0_P-X-\6;89TMD/\#53=U<
M^P8K,8`E`^\_L!(#9B(V``1X-U6W`\AQL!(#G2TP``0E-[42`\<\,``$>#=E)
MM`/8&D8D`Y(N$#`',``$>#>%'`<K,=#9`F(BI!('G2T@L63I0."Q`E4`<```8
M*````````,!)='!U(]064!6E7750=2-5%%`2Q55T<'(%``````"+$A$I@%$!]
ME186!P3#<[`"!,P4AA@#$2D`&0#@/5!I831S$`<$PW,@&Q0T<Q#7`&4?A"4#V
M*S%P20=H4!#7``-`4'53#4!0=5,K,=#9`O-`P$9A"2A68V&2+A`P!N!`83,IU
M@)D`````$!<0F"HS*6"9```````04&\J`!:V$@.=+8`8`S).=N\#FP_VY@-O;
M/E!C$A)+]OX#$2E`!0#8#_:2$34F(;%D%T"09Q$U)B&Q9.\_$)$"5`!P`02>5
M.,9(80DH5F5AG4$@+`.2+A`P!A`"!/<^L/E@;!0VV`.\&2;I`@%#`(5`$)$"J
MD`'P#001*<`2`+)!(1L4*S'0V0+D9P'0$0-`4"D#-2;!^F!Y%K$2`YTMP$=AG
MB#'`1F$-0(!W4]@:-@`$#4`@[`/]0,#;`[P4!MX#U2=69&%)0"`L`Y(N$#`&!
M$)$"Z`-P[P-+*!:1`N@#<.\#FP_FU`.\&=;9`C5`$)$"O`+P`P01*4`?`+)!F
M(1L4*S$0D0(+#B`:!TXJ0`$``!```C``!"`L`ZPQ<#YACF_`^F"*)78^88YO(
MP-L#%T#0PF*2+A`P!=#9`C).!MX#*S$0D0(``L!M8\AQ0"0#<0T@]`4K,4"G:
M`EU`\`@$HT`P!01G0)`)!/D_,``$(4"P`@3S0+`2`W0J(.D"`;,`G2WP_@.VL
M$^;X!A$I\/__DBX0,`Q`)`,1*?"9#[83YO@&*S'0V0+O/V`[88YOD/\#DBX0%
M,`Q`)`,1*?"9#[83YO@&*S'0V0+O/V`[88YO(!H'$2GP__^2+A`P#(`<!Q$I?
M\)D/MA/F^`8K,=#9`N\_8#MACF\@&@?Y/R#I`@'#`,AQ$)$"G_E@.V&.;[`2I
M`YTMD/\#)3>U$@.2+A`P#=#9`@U`@!@#>#<UF6&=+5!U4S@4%I$"!@SP_@.VM
M$^;X!E@RL!(#)3>%0V$1*6#``!$I\)D/MA/F^`98,K`2`Y(N$#`$T-D"`T!0)
M<E,K,=#9`HI+AA@#A#>%K6%A-Q5S4RLQL!(#G2W@0&')IT%Q!+P9UMD"1/XCN
MZ0(!DP"2+A`P"%`I`Y=ND-$#)D1F:P6\&>;X!BLQL!(#G2WP_@.V$^;X!I(NJ
M$#`/P$EAG"O&2F$./H#D8YTM0"0#,3*V$@.(,5!I89PK-B(#K#%P/F&.;Y#H"
M8YTM$/)@S!169V$K,;#Y8!$I\)D/MA/F^`8K,=#9`H@Q4&EAO#W`&@/G$^;XD
M!I88!JP#S!0&W@.!.K`2`YTM(+%D[S_`&@,U)L'Z8!$I0`4`LDOVDA&L#\8::
M`S4FP?I@$2E`!0"R2^:)8QQ+=@L$'BM0&0`G`%`"`(``%0``@``5``#@`Q4`.
M`(``%1``@(DD$`#`B"1\`("^)!``@,A_,`!`65`8`$!-4!``H$A\$`"@2E`HI
M`)!<<"@`2%Y85``H*U!4`)@J4)(`2&LH)0'PJCA)`9"J;),!D*I4)0&0JJK^5
M`!!_UH(`$$&J@@#P07S^`!!!1`$!$'_$_P.0@/P``HB`@@`"2``!`0+X____J
M`TR2)$D&2I(D20K_____'P$`$0`0`8`@`!`!@"``$`&`(``0`8`@`!#_____R
M'[)+U@`$'BL0`P`1`'````@(/@@8#`@4(D%!(AP4%!0<L"@!BQ)E'X0E`Y4RV
M`(L20E^P$@-T*M#9`E=FP-P""@$08P':';!!%T,!&4;Z$"0!X!='01-4,1)&2
M^A+E$488^%H(#5$6^JH?'2*:%8&<75\BBB6@&!CY(:(H'`*Q6P479!CXDACXH
MDIPQIB]1!@F:L%3F`/(#*`!.N4_[M$_ZANJ0^J`ORH0!"'A#X(:`-&E(X!81?
M,1)&012QW1$:8P)!$D8(R"LQP-P"M@"@#_A!9H"_>08!@1]D!@$0-#$2EOH2G
MY:NO^B&B61'(J5_[):)8`HJ!T2**PB$0NU5P08:!+XF!+\D90Q&Y+_LB%$6R`
M;V$?]F$!C0CK^[1/^Z1OJ+XH@#\4!2LQ0*<"="K@I`(1`#`0`3```N"D`A$`I
M$"`"(A`"X*0"$0`0$`,A$`'@I`(1`!`@`A```;$2`W0JX*0"$0`0$`,@``'@\
MI`(1`"`@`2```N&D`A$`$!`#(1`#X*0"$0`@(`$2$`&P$@-T*N"D`A$`(!`!I
M,``"X*0"$0`@(`$A``+AI`(1`!`0`R$``N&D`A$`("`#(1`"L!(#="K@I`(1!
M`!`0`R`0`N"D`A$`,"`",1`"L!(#="K@I`(1`#`0`2`0`N"D`A$`$"`"$1`"L
ML!(#="K@I`(1`````Q```N"D`A$`$#`!$A`!L!(#="K@I`(1`"`0`1$``K`2$
M`RLQX*0"<```````````````````/```````````````````````````````.
M````8`$`!E1%5%))4P`0`0!.*E`%`"7J[ZS^#^^/&/^1\C\O_^7SWT#_=_4_S
36__"]S^"_\GX7Y#_9OM/U/]_]O]_>
``
end
END_UU
--
+-----------------------------------+---------------------------------------+
| `You mean this isn't | Detlef Mueller |
| the afterlife ?` | detlef@mwhh.hanse.de |
| Arthur in THGTTG, part II, p. 78 |...!uunet!mcsun!unido!mcshh!mwhh!detlef|
+-----------------------------------+---------------------------------------+